Pular para o conteúdo principal

4.5. Subsistema da Tela de Telemetria

Visão Geral

O subsistema de telemetria tem como objetivo exibir em tempo real os principais dados de desempenho veicular durante a simulação. As informações são apresentadas em um display HDMI de 7" conectado a uma Raspberry Pi, que atua como cliente de telemetria recebendo dados processados pelo SimHub via rede local.

Por que usar a Raspberry Pi?

A escolha da Raspberry Pi se deu por três motivos principais:

  • Baixo custo: A placa foi subsidiada pelo professor da disciplina, viabilizando sua inclusão sem impacto orçamentário no projeto.
  • Facilidade de configuração plug and play: A Raspberry foi configurada para ter um IP fixo e iniciar automaticamente na tela de telemetria ao ser ligada, eliminando necessidade de interação manual.
  • Baixa latência na comunicação: Como a transmissão ocorre via Ethernet, a recepção dos dados de telemetria é feita praticamente em tempo real, permitindo feedback visual imediato ao usuário.

A integração entre o computador principal (responsável pela simulação e envio de dados via SimHub) e a Raspberry Pi será realizada por meio de conexão direta através de cabo Ethernet, com endereçamento IP estático configurado manualmente em ambas as interfaces de rede.

Ao adotar IPs fixos em ambos os dispositivos, elimina-se a necessidade de servidores DHCP ou roteadores intermediários, criando uma sub-rede dedicada ponto-a-ponto. Essa configuração permite que a comunicação entre o SimHub e o cliente de telemetria seja estabelecida de forma automática a cada inicialização, sem intervenção do usuário.

O uso de IPs estáticos garante previsibilidade na comunicação e reduz o tempo de inicialização do sistema, assegurando baixa latência e alta confiabilidade na transmissão dos dados de telemetria.


Levantamento Inicial

Metodologia

Para definirmos os componentes que apareceram na tela, realizamos uma entrevista com um usuário profissional de simuladores, que também é piloto de competições automotivas (Davi da Paz Magalhães). Buscamos entender os principais indicadores que são essenciais durante a simulação e também em termos de indicadores utilizados em corridas reais.

Para organizar as informações apresentadas, os elementos da interface foram divididos entre componentes obrigatórios e componentes auxiliares. Os obrigatórios estão presentes em todas as telas, enquanto os auxiliares variam conforme a tela selecionada pelo usuário.

Componentes Obrigatórios

  • Velocidade
  • RPM (Rotação por minuto)
  • Marcha
  • Status da Bandeira da Pista
  • Alarme - Combustível Baixo
  • Alarme - Desgaste Pneu
  • Delta Volta (temporário, por setor e por volta)
    • Diferença entre o tempo atual e o melhor tempo do jogador, por volta ou setor.

ℹ️ Observação: Os alarmes são apenas visuais e temporários.

Componentes Auxiliares

  • Tela 1
    • Vida útil dos pneus
    • Nível de combustível
    • Gráfico de temperatura dos pneus (escala de cores)
  • Tela 2
    • Gap (+1, -1): distância para o carro à frente e atrás
    • Balanço de freio (distribuição entre eixos)
    • Número da volta e posição
  • Tela 3
    • Mapa do circuito
    • Ranking geral da corrida

Referências Visuais

Exemplos de dashboards utilizados como inspiração


Protótipos de Média Fidelidade

A partir do levantamento inicial, foram criados protótipos de média fidelidade para validar a disposição dos elementos e a usabilidade da interface.

Protótipo 1 (Tela 1)

Este protótipo, desenvolvido no Figma, representa uma das telas disponíveis no sistema. Ele contempla os componentes obrigatórios e os da Tela 1. O foco está em:

  • Legibilidade das informações,
  • Usabilidade durante a corrida,
  • Feedback visual claro para o usuário.

Protótipo 2 (Tela 2)

Este protótipo apresenta a segunda tela do sistema, mantendo os componentes obrigatórios e adicionando os elementos auxiliares específicos dessa tela. Os destaques incluem:

  • Gap para o carro à frente e atrás,
  • Balanço de freio,
  • Número da volta e posição do piloto.

Protótipo 3 (Tela 3)

Este protótipo tem como foco o ranking dos pilotos e o mapa da pista, mantendo também os elementos obrigatórios presentes em todas as telas, como:

  • Velocidade e RPM,
  • Marcha atual,
  • Status da bandeira da pista.

Implementação dos Protótipos

A implementação dos protótipos será realizada utilizando a ferramenta SimHub, uma das soluções mais robustas e amplamente adotadas na comunidade de simulação automotiva. Essa escolha foi pautada por uma combinação de critérios técnicos, de usabilidade e de compatibilidade com os objetivos do projeto.

Por que utilizar o SimHub?

A adoção do SimHub se deu por quatro principais fatores:

  • Alta compatibilidade com jogos e periféricos: O SimHub oferece integração direta com uma ampla variedade de simuladores de corrida (como Assetto Corsa, iRacing, Project CARS, entre outros), além de suportar inúmeros dispositivos externos, como displays, painéis e controladoras — o que inclui a Raspberry Pi utilizada no projeto.

  • Editor gráfico intuitivo: A ferramenta conta com um sistema de criação de dashboards por interface gráfica, permitindo a construção de telas interativas sem necessidade de programação avançada. Isso facilita a prototipagem, customização e iteração rápida com foco na usabilidade.

  • Comunidade ativa e vasta biblioteca de recursos: O SimHub possui uma comunidade global de usuários que compartilham dashboards prontos, plugins e extensões, acelerando o processo de desenvolvimento e servindo como base de inspiração. Isso também garante maior sustentabilidade técnica para o projeto, com suporte contínuo e atualizações regulares.

  • Baixa latência e alto desempenho: Por ser otimizado para uso em simulações em tempo real, o SimHub garante baixa latência na renderização de dados, o que é essencial para que o feedback visual na tela de telemetria acompanhe o desempenho do simulador sem atrasos.

Processo de Desenvolvimento

Os protótipos desenhados em Figma serão recriados no editor do SimHub respeitando o layout, a hierarquia visual e a lógica de agrupamento dos dados definidos na fase de prototipação. Os elementos serão integrados diretamente com as variáveis fornecidas pelo SimHub e testados em ambiente local para validação de desempenho e legibilidade durante a simulação.

📐 Etapas de Criação dos Dashboards no Dash Studio (SimHub)

1. Preparação Inicial

  • Foi criado um dashboard padrão no Dash Studio do SimHub utilizando um dos modelos da biblioteca da comunidade.
  • Esse dashboard base foi utilizado como ponto de partida, contendo elementos visuais próximos do que foi planejado nos protótipos.
  • A partir dele, foram feitas remoções, substituições e reposicionamentos para adaptar os componentes conforme o layout e lógica definidos nos protótipos desenhados no Figma.

2. Configuração do Projeto no Dash Studio

  • No SimHub, foi criado um novo projeto de dashboard:
    • Resolução definida: 800x480 (resolução do display HDMI de 7").
    • Modo de visualização: adaptado para tela externa via navegador na Raspberry Pi.

3. Inserção dos Componentes Visuais

  • Utilizando a interface de drag and drop, os seguintes componentes foram inseridos ou adaptados:

    Componentes Obrigatórios:

    • RPM Bar: com cor dinâmica (verde → amarelo → vermelho) baseado em [RPMPercent].
    • Velocímetro Digital: texto com round([SpeedKmh], 0) + " km/h".
    • Marcha Atual: com transição de cor entre neutro e engatado.
    • Status da Bandeira: imagem condicional vinculada a [FlagColor].
    • Alertas Visuais: visibilidade ativada por condições como [Fuel] < 5 e [TireWearAVG] > 0.9.
    • Delta de Volta: texto condicionado com cor verde/vermelha para indicar melhoria.

    Componentes Auxiliares (por tela):

    • Tela 1: barras horizontais com [TireWearFL], [Fuel], e indicadores de temperatura (colorização por range).
    • Tela 2: campos de texto com [GapAhead], [GapBehind], [BrakeBias] e [Lap].
    • Tela 3: mapa carregado em SVG e ranking utilizando a lista [DriversList.Position].

4. Criação de Páginas Múltiplas no Dashboard

  • O Dash Studio permite criar abas internas (pages). Foram implementadas 3 páginas:

    • Página 1: Dados de consumo e pneus;
    • Página 2: Gap e estratégia;
    • Página 3: Mapa e classificação.
  • A alternância entre páginas foi configurada via:

    • Botão na interface, clicável na Raspberry Pi;
    • Evento de teclado virtual, enviado pela rede, simulando um comando.

5. Teste e Ajuste em Tempo Real

  • O dashboard foi inicialmente executado no PC em janela flutuante com dados simulados.

  • Foram realizados testes durante sessões com os jogos:

    • Assetto Corsa
    • F1 2020
  • Durante os testes, foram avaliados:

    • Legibilidade dos elementos em alta velocidade;
    • Atualização em tempo real das variáveis;
    • Sobreposição de elementos e eventuais distrações visuais.

6. Publicação para Dispositivo Externo

  • A Raspberry Pi foi configurada para acessar o servidor web embutido do SimHub.
  • Endereço de acesso configurado: http://192.168.137.2:8888/
  • O navegador Chromium foi ajustado para:
    • Iniciar automaticamente na inicialização do sistema;
    • Rodar em modo kiosk (tela cheia);
    • Acessar diretamente a URL do dashboard com o cache desativado.

7. Ajustes Finais e Otimização

  • Realizadas otimizações para garantir desempenho e responsividade:
    • Redução de elementos animados para aliviar o uso de CPU da Raspberry Pi;
    • Conversão de imagens grandes para PNG-8;
    • Padronização de tipografia utilizando apenas duas famílias de fontes;
    • Testes de contraste e visibilidade em modo noturno/fundo escuro.

8. Validação com Usuário Final

  • O piloto entrevistado na fase de levantamento foi convidado para testar o sistema em ação.

🎮 Coleta de Dados dos Jogos

  • Protocolos Utilizados: O SimHub se comunica com os jogos através de protocolos como UDP, Shared Memory ou APIs específicas.

  • Configuração: É necessário configurar o jogo para enviar dados telemétricos. Por exemplo, no F1 2020, define-se o IP e a porta para o envio dos dados via UDP.

  • Compatibilidade: O SimHub suporta mais de 80 jogos, incluindo:

    • iRacing
    • Assetto Corsa
    • F1 Series
    • Automobilista
    • Project CARS
    • Entre outros

⚙️ Processamento dos Dados no SimHub

  • Normalização: Os dados recebidos são processados e normalizados para serem utilizados nos dashboards.

  • Bindings: Utiliza-se uma linguagem de fórmulas baseada em NCalc (semelhante a JavaScript) para criar expressões que vinculam os dados aos elementos visuais.

    Exemplo de Binding:

    round([SpeedKmh], 0) + " km/h"
  • Armazenamento de Valores: É possível armazenar valores personalizados utilizando scripts, permitindo funcionalidades como:

  • ✅ Metas de voltas rápidas

  • ⚠️ Alertas condicionais

  • 🕒 Controle de sessões

Esses valores podem ser utilizados para criar lógica de comparação, ativação de alertas visuais ou envio de sinais para hardware externo. A configuração é feita através da aba "Stored Values" no SimHub.


🖥️ Dash Studio: Criação e Renderização de Dashboards

O Dash Studio permite a criação de dashboards personalizados por meio de uma interface gráfica intuitiva com suporte a drag and drop (arrastar e soltar). Os elementos são altamente configuráveis.

🧩 Componentes Disponíveis

  • Indicadores analógicos e digitais
  • Gráficos de RPM
  • Mapas de pista
  • Alertas visuais
  • Tacômetros
  • Luzes de marcha
  • Status de pneus
  • Velocímetro, combustível, temperatura e muito mais

🖼️ Renderização

Os dashboards criados podem ser exibidos em diferentes dispositivos, como:

  • 💻 Telas do PC (em modo janela ou tela cheia)
  • 📱 Dispositivos móveis, acessando o dashboard pelo navegador via servidor web embutido
  • 🔌 Displays conectados via USB, como VoCore e USBD480
  • 🔧 Dispositivos Arduino, com displays LCD, OLED ou LED Matrix, recebendo dados via comunicação serial

Telas Implementadas

Tela 1: Dados de Consumo e Pneus

Tela 2: Gap e Estratégia

Tela 3: Mapa e Classificação


🔗 Acesso ao Conjunto de Telas

Para visualizar o conjunto completo de telas implementadas no SimHub, acesse o link do arquivo das telas.

para baixar o arquivo, clique em Download no arquivo pi2.simhubdash presente na página do link acima. O arquivo pode ser aberto diretamente no SimHub para visualização e edição.

exemplo:


🕘 Histórico de Versões

DataEditorDescrição
16/05/2025Rafael NobrePrimeira versão do documento
29/05/2025Mateus de AlmeidaAdição do primeiro protótipo
30/05/2025Alexandre BeckAdição da justificativa para uso da Raspberry Pi
30/05/2025Wengel RodriguesDescrição da comunicação entre PC e a Raspberry Pi
30/05/2025Lucas CaldasDetalhamento do funcionamento do SimHub
18/07/2025JackesDetalhamento do processo de construção das telas
18/07/2025Alexandre BeckAdição de protótipos e telas implementadas